# -*- coding: utf-8 -*-
"""
@Time ： 2020/8/3 9:59
@Auth ： Mr. JJ_Cloud
@Company ：testingedu.com.cn
@Function ：参数列表
"""
def myfunc(x,y,a=1,b=2,*args,**kwargs):
    """
    python 里面函数的参数有四大类
    1.固定参数
        x,y
        必须传入的参数，如果没有指定（参数名字=值）这样的形式传入，那么就按顺序一一对应
        如果指定（参数名字=值），就会按名字对应传入

    2.可变参数
        a=1,b=2
        有默认值的参数，称为可变参数
        可变参数可以不传，不传的时候使用定义时的默认值
        它必须定义在固定参数的后面
        传入的时候，可以按顺序传入，也可以使用（参数名字=值）得形式传入

    3.可变参数列表
        *args:是指把除了固定参数传入的参数外的参数，当做一个元祖
        可以和可变参数同时存在，但是：
        1.如果可变参数出现在*args后面，就必须使用（参数名=值）的形式传入
        2.如果可变参数出现在*args前面，只能按顺序传入

    4.可变参数字典
        **kwargs:传入的键值对参数，会被转为字典，必须出现在*args后面

    :return:
    """
    print(x)
    print(y)
    print(args)
    print(kwargs)

l = [1,2,3,4]
m = {'k':3,'j':4}

myfunc(8,8,*l,**m)

